🐱 算神的小窝 🤓

Nginx中配置SSE(Server-Sent Events).md


CreationTime:5/21/2025 3:12:50 PM LastAccessTime:6/24/2025 8:49:41 PM


Nginx中配置SSE(Server-Sent Events)

SSE(Server-Sent Events)是一种服务器推送技术,它允许服务器通过HTTP协议向客户端发送实时数据。在Nginx中配置SSE可以提高实时数据传输的效率,与传统的轮询或长轮询相比,SSE是一种更有效的实时数据更新方式。

Nginx配置SSE的步骤

步骤1:编辑Nginx配置文件

首先,需要打开Nginx的配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf

步骤2:添加处理SSE请求的location块

在配置文件的http部分内,添加一个新的location块来处理SSE请求。例如:

http {
    server {
        location /sse {
            proxy_http_version 1.1;
            proxy_set_header Connection "";
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            # 设置SSE连接的超时时间
            proxy_read_timeout 86400s;
            # 关闭缓冲
            proxy_buffering off;
            # 关闭代理缓存
            proxy_cache off;
            # 反向代理到SSE应用的地址和端口
            proxy_pass http://backend-server;
        }
    }
}

步骤3:保存并关闭配置文件

完成配置后,保存并关闭Nginx配置文件。

步骤4:验证配置并重新加载Nginx

使用命令sudo nginx -t验证配置文件是否正确,通过后使用sudo service nginx reload重新加载Nginx配置。

配置解释

  • /sse是用于SSE请求的路径,可以根据需要修改。
  • proxy_pass指定后端服务器的地址,需要替换为实际的后端服务器地址。
  • proxy_http_version设置代理使用HTTP/1.1协议。
  • proxy_set_header设置必要的头部信息。
  • proxy_read_timeout设置SSE连接的超时时间,避免Nginx默认的60秒超时限制。
  • proxy_buffering offproxy_cache off确保数据实时传输,关闭缓冲和代理缓存,以正确处理SSE流式数据。

总结

通过以上步骤配置Nginx反向代理处理SSE请求,可以实现实时数据的推送。确保后端服务器编写了SSE事件流的代码,并与Nginx配置文件中的路径相匹配。这样配置后,Nginx将能够有效地处理SSE请求,为客户端提供实时数据更新。

An unhandled error has occurred. Reload 🗙